Appearance
JD9 删除字符串中出现次数最少的字符
本节目标:理解“JD9 删除字符串中出现次数最少的字符”的核心思路,并能把它用于实际开发或面试表达。 简单 通过率:35.68% 时间限制:1秒 空间限制:32M 知识点==字符串====哈希== 描述 实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
数据范围:输入的字符串长度满足 1≤n≤20 ,保证输入的字符串中仅出现小写字母 输入描述: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。 输出描述: 删除字符串中出现次数最少的字符后的字符串。 示例1 输入: aabcddd ==复制== 输出: aaddd
要解决这个问题,我们可以分几个步骤来实现:
- 统计每个字符的出现次数:首先遍历整个字符串,使用一个字典来统计每个字符出现的次数。
- 找出出现次数最少的字符:然后遍历这个字典,找到出现次数最少的字符。注意,可能有多个字符的出现次数都是最小的。
- 构建新字符串:最后,再次遍历原字符串,构建一个新的字符串,只包括那些出现次数不是最少的字符。
以下是Python代码实现: def remove_least_frequent_chars(s):
统计每个字符的出现次数
char_count = {} for char in s: if char in char_count: char_count[char] += 1 else: char_count[char] = 1
找出出现次数最少的字符的出现次数
min_count = min(char_count.values())
构建并返回一个新字符串,只包含出现次数不是最少的字符
return ''.join(char for char in s if char_count[char] != min_count)
输入
s = input()
输出
print(remove_least_frequent_chars(s))
这段代码首先统计了字符串s中每个字符的出现次数,然后找到了出现次数最少的字符的出现次数min_count。最后,通过列表解析式,它构建了一个新的字符串,只包括那些其出现次数不等于min_count的字符,从而实现了删除出现次数最少的字符的功能。
